1. Field of the Invention
The present invention relates to a data storage device, and more particularly, to a redundant array of independent disks (RAID) storage device.
2. Description of the Related Art
In a storage system comprising multiple disk arrays, the redundant array of independent disks (abbreviated as RAID hereinafter) is a technique which integrates several small size physical disks to form an extendable logical drive. When storing a data, the data is split into several data blocks and each data block is stored in a separate physical disk. Since the access operation is performed simultaneously, better data access efficiency is provided by the RAID technique. In addition, in order to prevent the data loss due to some physical disk damage, the RAID technique also applies the parity check concept for rebuilding data when it is necessary.
In general, the RAID system is classified as several levels based on the RAID type of the physical disk and the way it stores data, and the commonly seen RAID system on the current market comprises following types.
RAID 0, in which a data is split into several blocks, and each block is written into a separate physical disk (it is the so-called “Data stripping”). Thus the RAID 0 provides better access efficiency. However, since the RAID 0 does not support fault tolerance and data rebuild, if one of the physical disks fails, the data is lost. Therefore, it is only suitable for the circumstance where the data which is not so important needs to be accessed in a high speed.
RAID 1, in which two physical disks are treated as a logical drive, and the data is stored into two physical disks simultaneously. When one of the physical disks is damaged, the same data can be accessed from the other physical disk so as to prevent the important data from being lost.
RAID 3, in which a physical disk is reserved as a parity disk for storing parity data, and other data is evenly stored in other physical disks. When some physical disk is damaged, the disk controller can recover the data by using the parity data stored previously.
RAID 5, is different from RAID 3 in that the parity data is distributed and saved in each physical disk without having to allocate a dedicated parity disk. Thus, the RAID 5 is also known as a “Rotating Parity Array”. Wherein, the data is evenly stored in each physical disk like in RAID 3. When one of the physical disks is damaged, the disk controller can recover the data by using the parity data stored previously.
The RAID 0 mentioned above is advantageous in supporting fast access, and the RAID 1, RAID 3, and RAID 5 are advantageous in supporting fault tolerance and data rebuild. If we combine the RAID storing type as RAID 0+RAID 1 (represented as RAID 10), both advantages will be achieved. Of course, other combination such as RAID 0+RAID 3 (represented as RAID 30) or RAID 0+RAID 5 (represented as RAID 50) are also valid.
In addition, although the RAID 1, RAID 3, and RAID 5 support the fault tolerance and data rebuild. However, these functions are supported when only one physical disk is damaged. If more than one physical disk are damaged, the data cannot be rebuilt. Therefore, in another type of the RAID combination in conventional art, a distributed parity data is generated in the storage blocks of the same column of stripes in each physical disk in order to rebuild data when more than one physical disk are damaged.
FIG. 1 is a structure diagram of a conventional RAID 3 combination style disk array. The RAID disk array 100 comprises M storage devices 110, and each storage devices 110 comprises N storage blocks 112. Wherein, the storage blocks of the same J-column comprise a plurality of physical data blocks and at least a parity data block. The parity data block is obtained from the calculation based on the physical data blocks. For example, the parity data block of the first column 112p is obtained from the calculation based on the physical data blocks 112a, 112b, 112c, 212d, and the rest can be deduced by analogy. Herein, it is defined that DJ is a quantity of the physical data blocks in the same J-column stripe, and PJ is a quantity of the parity data blocks in the same J-column stripe. Wherein, DJ+PJ=M. Moreover, N, M, J are positive integers, and J is an integer of 1˜N.
In addition, FIG. 2 is a structure diagram of a conventional RAID 50 combination style multi-disk array. The RAID disk array 200 comprises M number of first storage devices 210 and M number of second storage devices 220. Wherein, the physical data blocks 212a, 212b, 214a, 214b are disposed with the RAID 0 combination style first, and the data blocks 212a, 212b, 214a, 214b are then saved in the stripes of the first storage device 210 and the second storage device 220, respectively. Herein, the parity data block 212p is obtained from the calculation based on the physical data blocks 212a, 212b, the parity data block 214p is obtained from the calculation based on the physical data blocks 214a, 214b, and the rest can be deduced by analogy.
In the conventional art, it is required to increase the quantity of the first storage device 210 and the second storage device 220 in order to increase the storage capacity. However, each time when a first storage device 210 is added, a corresponding second storage device 220 has to be added accordingly. Therefore, the expansion of the system capacity is limited. In addition, since it has to follow the existing RAID 5 combination arrangement architecture for expanding the capacity, the system access efficiency cannot be effectively improved.